<article class="guide">
  <carousel class="deck container-fluid">
    <slide class="row-fluid">
      <div class="col-sm-3">
        <h3>Start Learning</h3>
        <p class="lead">Graph database fundamentals.</p>
      </div>
      <div class="col-sm-9">
        <p>
          Neo4j is a graph database. You can store any data in Neo4j, then
          ask questions about how that data is related. 
        </p>
        <ol class="big">
          <li>What is a graph database?</li>
          <li>How can I query a graph?</li>
          <li>What do people do with Neo4j?</li>
        </ol>
      </div>
    </slide>
    <slide class="row-fluid">
      <div class="col-sm-3">
        <h3>A&nbsp;<em>Graph</em> Database</h3>
        <p class="lead">Neo4j stores data in a Graph, with records called Nodes.</p>
      </div>
      <div class="col-sm-5">
        <p>
          The simplest graph has just a single node with some named values called Properties.
          Let's draw a social graph of our friends on the Neo4j team:
        </p>
        <ol>
          <li>Start by drawing a circle for the node</li>
          <li>Add the name Emil</li>
          <li>Note that he is from Sweden</li>
        </ol>
        <ul>
          <li>Nodes are the name for data records in a graph</li>
          <li>Data is stored as Properties</li>
          <li>Properties are simple name/value pairs</li>
        </ul>
      </div>
      <div class="col-sm-4"><img src="images/one_node.png" class="img-responsive"></div>
    </slide>
    <slide class="row-fluid">
      <div class="col-sm-3">
        <h3>Labels</h3>
        <p class="lead">Associate a set of nodes.</p>
      </div>
      <div class="col-sm-5">
        <p>
          Nodes can be grouped together by applying a Label to each member.
          In our social graph, we'll label each node that represents a Person.
        </p>
        <ol>
          <li>Apply the label "Person" to the node we created for Emil</li>
          <li>Color "Person" nodes red</li>
        </ol>
        <ul>
          <li>A node can have zero or more labels</li>
          <li>Labels do not have any properties</li>
        </ul>
      </div>
      <div class="col-sm-4"><img src="images/labeled_node.png" class="img-responsive"></div>
    </slide>
    <slide class="row-fluid">
      <div class="col-sm-3">
        <h3>More Nodes</h3>
        <p class="lead">Schema-free, nodes can have a mix of common and unique properties.</p>
      </div>
      <div class="col-sm-5">
        <p>
          Like any database, storing data in Neo4j can be as simple
          as adding more records. We'll add a few more nodes:
        </p>
        <ol>
          <li>Emil has a klout score of 99</li>
          <li>Johan, from Sweden, who is learning to surf</li>
          <li>Ian, from England, who is an author</li>
          <li>Rik, from Belgium, has a cat named Orval</li>
          <li>Allison, from California, who surfs</li>
        </ol>
        <ul>
          <li>Similar nodes can have different properties</li>
          <li>Properties can be strings, numbers, or booleans</li>
          <li>Neo4j can store billions of nodes</li>
        </ul>
      </div>
      <div class="col-sm-4"><img src="images/more_nodes.png" class="img-responsive"></div>
    </slide>
    <slide class="row-fluid">
      <div class="col-sm-3">
        <h3>Consider Relationships</h3>
        <p class="lead">Connect nodes in the graph</p>
      </div>
      <div class="col-sm-5">
        <p class="summary">
          The real power of Neo4j is in connected data. To associate any two nodes,
          add a Relationship which describes how the records are related.
        </p>
        <p>In our social graph, we simply say who KNOWS whom:</p>
        <ol>
          <li>Emil KNOWS Johan and Ian</li>
          <li>Johan KNOWS Ian and Rik</li>
          <li>Rik and Ian KNOWS Allison</li>
        </ol>
        <ul>
          <li>Relationships always have direction</li>
          <li>Relationships always have a type</li>
          <li>Relationships form patterns of data</li>
        </ul>
      </div>
      <div class="col-sm-4"><img src="images/relationships.png" class="img-responsive"></div>
    </slide>
    <slide class="row-fluid">
      <div class="col-sm-3">
        <h3>Relationship properties</h3>
        <p class="lead">Store information shared by two nodes.</p>
      </div>
      <div class="col-sm-5">
        <p class="summary">
          In a property graph, relationships are data records that can also
          contain properties.
          Looking more closely at Emil's relationships, note that:
        </p>
        <ul>
          <li>Emil has known Johan since 2001</li>
          <li>Emil rates Ian 5 (out of 5)</li>
          <li>Everyone else can have similar relationship properties</li>
        </ul>
      </div>
      <div class="col-sm-4"><img src="images/rel-props.png" class="img-responsive"></div>
    </slide>
    <slide class="row-fluid">
      <div class="col-sm-4">
        <h3>Next steps</h3>
        <p>A property graph contains nodes and relationships, with properties on both.</p>
      </div>
      <div class="col-sm-4">
        <h3>Keep getting started</h3>
        <ul class="undecorated">
          <li><a play-topic="intro">Intro</a> - a guided tour</li>
          <li><a play-topic="cypher">Cypher</a> - query language</li>
          <li><a target="_blank" href="https://neo4j.com/docs/developer-manual/3.2/">Neo4j Developer Manual</a></li>
        </ul>
      </div>
      <div class="col-sm-4">
        <h3>Jump into code</h3>
        <ul class="undecorated">
          <li><a play-topic="movie-graph">The Movie Graph</a></li>
        </ul>
      </div>
    </slide>
  </carousel>
</article>
